Synchronizers are circuits used to transition data between different clock domains in an electronic device. For example, a Multiple Clock Domain (MCD) device may use synchronizers to transition data between respective clock domains. An example of an MCD device is a Globally Asynchronous Locally Synchronous (GALS) System on a Chip (SoC), in which different parts of the chip operate at different frequencies, yet communicate with each other. Another example is a processor in which high-clock-rate processor cores communicate with slower cores and/or even slower memory. Still other examples are possible.
Different synchronizers have different power and performance characteristics. For example, a first synchronizer may have a shorter latency, and thus higher performance, than a second synchronizer, but at the cost of higher power consumption than the second synchronizer.